import os
import re
import glob

def rename_fits_files(folder_path):
    """
    将文件夹下的 *_1.fit 文件重命名为 *_001.fit
    
    参数:
    folder_path: 文件夹路径
    """
    # 获取所有匹配 *_1.fit 的文件
    pattern = os.path.join(folder_path, "*_1.fit")
    files_to_rename = glob.glob(pattern)
    
    if not files_to_rename:
        print(f"在文件夹 {folder_path} 中没有找到 *_1.fit 文件")
        return
    
    print(f"找到 {len(files_to_rename)} 个需要重命名的文件")
    
    renamed_count = 0
    for old_path in files_to_rename:
        # 获取文件名（不含路径）
        old_filename = os.path.basename(old_path)
        
        # 使用正则表达式替换 _1.fit 为 _001.fit
        new_filename = re.sub(r'_1\.fit$', '_001.fit', old_filename)
        
        # 如果正则没有匹配到，跳过这个文件
        if new_filename == old_filename:
            continue
            
        # 构建新文件的完整路径
        new_path = os.path.join(folder_path, new_filename)
        
        # 重命名文件
        try:
            os.rename(old_path, new_path)
            print(f"重命名: {old_filename} -> {new_filename}")
            renamed_count += 1
        except OSError as e:
            print(f"重命名 {old_filename} 失败: {e}")
    
    print(f"完成! 成功重命名了 {renamed_count} 个文件")

# 使用方法
if __name__ == "__main__":
    # 指定文件夹路径
    folder_path = "data/datasets/20251016_045220/images"
    
    # 检查文件夹是否存在
    if not os.path.isdir(folder_path):
        print("错误: 指定的文件夹不存在!")
    else:
        rename_fits_files(folder_path)